package com.shrct.businessprocess.purchase;

import com.shrct.businessprocess.purchase.RCInvoiceType;
import com.shrct.businessprocess.purchase.RCPurchaseIncomeRequest;
import com.shrct.businessprocess.purchase.impl.RCPurchaseInvoiceItemImpl;
import com.shrct.businessprocess.purchase.proxy.RCPurchaseInvoiceItemProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;

@EntityImplementation(implementBy = RCPurchaseInvoiceItemImpl.class)
public interface RCPurchaseInvoiceItem extends IModelObject {
  public abstract RCPurchaseIncomeRequest getIncomeRequest();
  
  public abstract RCPurchaseInvoiceItem setIncomeRequest(final RCPurchaseIncomeRequest incomeRequest);
  
  public abstract String getProductName();
  
  public abstract RCPurchaseInvoiceItem setProductName(final String productName);
  
  public abstract String getProductSpec();
  
  public abstract RCPurchaseInvoiceItem setProductSpec(final String productSpec);
  
  public abstract String getUnit();
  
  public abstract RCPurchaseInvoiceItem setUnit(final String unit);
  
  public abstract Double getUnitPrice();
  
  public abstract RCPurchaseInvoiceItem setUnitPrice(final Double unitPrice);
  
  public abstract Double getQuantity();
  
  public abstract RCPurchaseInvoiceItem setQuantity(final Double quantity);
  
  public abstract RCInvoiceType getInvoiceType();
  
  public abstract RCPurchaseInvoiceItem setInvoiceType(final RCInvoiceType invoiceType);
  
  public abstract Double getSubTotal();
  
  public abstract Double getActualIncome();
  
  public abstract Double getActualTax();
  
  public abstract RCPurchaseInvoiceItemProxy toProxy();
}
